package com.guigu.guliorder.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.guigu.gulicommon.entity.pojo.res.Res;
import com.guigu.guliorder.entity.OmsOrderItem;
import com.guigu.guliorder.entity.dto.InsertOrderItemBatchDto;
import com.guigu.guliorder.entity.dto.SelectOrderItemPagesDto;
import com.guigu.guliorder.entity.dto.UpdateOrderItemDto;

import javax.validation.Valid;
import java.util.ArrayList;

/**
 * <p>
 * 订单项信息 服务类
 * </p>
 *
 * @author 陈俊杰
 * @since 2024-08-15
 */
public interface IOmsOrderItemService extends IService<com.guigu.guliorder.entity.OmsOrderItem> {

    /**
     * 分页查询订单项详情信息(通用)
     *
     * @param pagesDto 查询订单项的参数
     * @return vo 订单项详情的分页
     */
    Res<OmsOrderItem> findPages(SelectOrderItemPagesDto pagesDto);

    /**
     * 批量新增订单项(通用)
     *
     * @param dto 添加订单项的参数
     * @return vo 添加订单项的信息
     */
    Res<OmsOrderItem> addBatch(ArrayList<InsertOrderItemBatchDto> dto);

    /**
     * 批量删除订单项(通用)
     *
     * @param ids 批量删除订单项的id集合
     * @return vo 被删除的订单项的信息
     */
    Res<OmsOrderItem> deleteByIdsBatch(Long[] ids);

    /**
     * 修改订单项(通用)
     *
     * @param dto 修改订单项的参数
     * @return vo 修改后订单项的信息
     */
    Res<OmsOrderItem> update(@Valid UpdateOrderItemDto dto);
}
